This invention relates to a method for creating a network from technical devices, such as digital electronic consumer devices and/or computers.
In computer technology it is well known to build up a network of connected devices for exchanging data and sharing hardware resources. The separate devices are commonly called nodes. At the time being, nodes are usually computers, but can be other technical devices, such as set top boxes, cellular telephones, mobile electronic devices or the like. The interconnections between the nodes are mainly electrically, optically or wireless radio connections. Networks can be classified as being based on either client-server or peer-to-peer (P2P) architectures. In P2P based networks a node is also referred to as a peer. While in client-server architectures each node is defined to be either client or server, there is no such differentiation in P2P networks. Instead, peers include both, server and client functionalities. P2P technology enables each node to be capable of providing services or resources to any other node in the network, or use services or resources provided by any other node in the network.
P2P networks are usually not restricted to any special applications or underlying network topologies, but can be understood as a set of nodes, or peers, which rely on certain sets of specific protocols. It is characteristic for a P2P network that the peers communicate directly with other peers, so that no central network organization is required. Most P2P networks support that peers can be connected to the network or disconnected from the network at any time.
The mentioned P2P protocols are required for basic network organization, such as for example, discovery of other connected peers, offering own services or resources to other peers (advertising), understanding other peers' advertising messages, or allocating connection capacity for establishing certain connections to other peers. Also, there are protocols that enable a group of peers to cooperate, and thus form a peer-group. Such peer-groups are usually used for providing a common set of services within the peer group. Nevertheless, the purpose of a peer-group is not generally defined. A peer belonging to a peer-group normally has access to, and can be accessed from, all other connected peers of the same group. Additionally, each peer may be a member of further peer-groups. For adding or removing peers to or from a peer group, the user is always required to perform certain administrative activities.
Stochastic Fluid Theory for P2P Streaming Systems (R. Kumar, Y. Liu, and K. Ross, in Proceedings of IEEE INFOCOM, 2007) teaches that the maximum video streaming rate in a P2P streaming system is determined by the video source server's capacity, the number of the peers in the system, and the aggregate uploading capacity of all peers. A perfect scheduling algorithm is also proposed to achieve the maximum streaming rate. In such a scheduling algorithm, each peer uploads the video content obtained directly from the server to all other peers in the system. To guarantee 100% uploading capacity utilization on all peers, different peers download different content from the server and the rate at which a peer downloads content from the server is proportional to its uploading capacity.
A perfect scheduling algorithm achieves the maximum streaming rate allowed by the system. Assuming n peers in the system, and peer i's upload capacity is ui, i=1, 2, . . . , n. There is one source in the system with the upload capacity of us. Denoted by rmax the maximum streaming rate allowed by the system is:
                              r          max                =                  min          ⁢                      {                                          u                s                            ,                                                                    u                    s                                    +                                                            ∑                                              i                        =                        1                                            n                                        ⁢                                          u                      i                                                                      n                                      }                                              (        1        )            
The value of
      (                  u        s            +                        ∑                      i            =            1                    n                ⁢                  u          i                      )    /  nis the average upload capacity per peer. FIG. 1 illustrates an exemplary system (100) according to the prior art demonstrating how the different portions of data are scheduled among three heterogeneous nodes with perfect scheduling algorithm. There are three peers (120, 130, 140) depicted in the system. Assuming the server (110) has capacity of 6 and the upload capacities of a (130), b (120) and c (130) are 2, 4 and 6 respectively, and that that all peers have enough downloading capacity, the maximum video rate that can be supported in the system is 6. To achieve that rate, the server divides video data into portions of 6 (151, 152, 153). A (130) is responsible for uploading 1 portion out of video data while b (140) and c (120) are responsible for upload 2 and 3 portions within each video data. This way, all peers (130, 140, 120) can download video at the maximum rate of 6. To implement such a perfect scheduling algorithm, each peer needs to maintain a connection and exchange video content with all other peers in the system. In addition, the server needs to split the video stream into multiple sub-streams with different rates, one for each peer. A real P2P streaming system can easily have a few thousand of peers. With current operating systems, it is unrealistic for a regular peer to maintain thousands of concurrent connections. It is also challenging for a server to partition a video stream into thousands of sub-streams in real time. Thus it is desirable to have a P2P streaming system which can achieve the streaming rate close to the theoretical upper bound, and the scheme is practical enough to use in practice.